package cn.dai.Reflection;

import org.junit.Test;

/**
 * @author ArkD42
 * @file 1 - Java基础语法
 * @create 2020 - 04 - 22 - 22:27
 */
public class GetClassStyle {

    @Test
    public void getClass4Way() throws Exception {
        // 第一种  类.class
        Class<Person> personClass1 = Person.class;
        System.out.println(personClass1);

        // 第二种  类的实例.getClass();
        Person person = new Person();
        Class<? extends Person> personClass2 = person.getClass();
        System.out.println(personClass2);

        // 第三种 Class.forName(类的完整限定名)
        Class<?> personClass3 = Class.forName("cn.dai.Reflection.Person");
        System.out.println(personClass3);

        // 第四种 当前类.class.getClassLoader().loadClass(类的完全限定名");
        Class<?> personClass4 = GetClassStyle.class.getClassLoader().loadClass("cn.dai.Reflection.Person");

        // 所有调用的方法出来的实例都是同一个对象
    }
}
